package route

import (
	"github.com/gin-gonic/gin"
	"github.com/wzh200x/webServer/httpHandle"
	"github.com/wzh200x/webServer/middleware/auth"
)

func RegisterRouter(ginEngine *gin.Engine) {
	// ginEngine.GET("/", HandleTest)
	// 公开路由组 - 不需要鉴权
	public := ginEngine.Group("/api/v1")
	{
		public.GET("/test", httpHandle.HandleTest)                                // 测试接口
		public.POST("/login", httpHandle.HandleLogin)                             // 登录接口
		public.POST("/platform/login", httpHandle.HandlePlatformLogin)            // 第三方平台登录接口
		public.POST("/refresh", httpHandle.HandleRefreshToken)                    // 刷新令牌接口
		public.GET("/configs", httpHandle.HandleGetConfigs)                       // 获取游戏配置信息接口
		public.GET("/server/query", httpHandle.HandleQueryServer)                 // 获取服务器信息接口
		public.GET("/server/time", httpHandle.HandleQueryTime)                    // 获取服务器时间接口
		public.GET("/bytejump/ad/oauth", httpHandle.HandleAdOauth)                // 字节跳动广告认证接口
		public.POST("/platform/report", httpHandle.HandlePlatformReport)          // 平台上报接口
		public.POST("/platform/wx/decrypt", httpHandle.HandleWxDecrptData)        // WX解密数据接口
		public.POST("/bytejump/ad/oauth/refresh", httpHandle.HadnleAdOathRefresh) // 字节跳动广告刷新token接口
		public.GET("/bytejump/ad/oauth/query", httpHandle.HandleAdOauthQuery)     // 字节跳动广告查询token接口
	}

	// 私有路由组 - 需要JWT鉴权
	private := ginEngine.Group("/api/v1")
	private.Use(auth.JWTAuth()) // 应用JWT鉴权中间件
	{
		// 这里添加需要鉴权的接口
		private.GET("/protected", httpHandle.HandleProtected)
		// 角色相关接口
		private.POST("/character/create", httpHandle.HandleCreateCharacter) // 创建角色
		private.POST("/character/get", httpHandle.HandleGetCharacter)       // 获取角色
		private.POST("/character/update", httpHandle.HandleUpdateCharacter) // 修改角色数据
		// 区服信息相关接口
		private.POST("/center/get", httpHandle.HandleGetCenter)       // 获取区服信息
		private.POST("/center/update", httpHandle.HandleUpdateCenter) // 更新区服信息
		// 支付相关接口
		private.POST("/pay/create", httpHandle.HandleCreateOrder) // 创建订单
		private.GET("/pay/query", httpHandle.HandleQueryOrder)    // 查询订单
		private.POST("/pay/payed", httpHandle.HandlePayedOrder)   // 订单支付完成
		private.POST("/pay/send", httpHandle.HandleShipOrder)     // 订单发货
		// CDKey相关接口
		private.POST("/cdkey/use", httpHandle.HandleUseCdKey) // 使用CDKey
		// 模块数据相关接口
		private.POST("/module/update", httpHandle.HandleUpdateModule) // 更新角色模块数据
		private.POST("/module/query", httpHandle.HandleQueryModule)   // 查询角色模块数据
	}

}
